forked from Apress/practical-ml-w-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcrawl_basic.py
More file actions
49 lines (32 loc) · 1.18 KB
/
crawl_basic.py
File metadata and controls
49 lines (32 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# -*- coding: utf-8 -*-
"""
Created on Wed May 10 19:39:39 2017
@author: Raghav Bali
"""
"""
This script crawls apress.com's blog post to:
+ extract content related to blog post using regex
``Execute``
$ python crawl_basic.py
"""
import re
import requests
def extract_blog_content(content):
"""This function extracts blog post content using regex
Args:
content (request.content): String content returned from requests.get
Returns:
str: string content as per regex match
"""
content_pattern = re.compile(r'<div class="cms-richtext">(.*?)</div>')
result = re.findall(content_pattern, content)
return result[0] if result else "None"
if __name__ =='__main__':
base_url = "http://www.apress.com/in/blog/all-blog-posts"
blog_suffix = "/wannacry-how-to-prepare/12302194"
print("Crawling Apress.com for required blog post...\n\n")
response = requests.get(base_url+blog_suffix)
if response.status_code == 200:
content = response.text.encode('utf-8', 'ignore').decode('utf-8', 'ignore')
content = content.replace("\n", '')
blog_post_content = extract_blog_content(content)