douban:
```python
import requests
import json
class DoubanSpider:
def __init__(self):
self.start_url_temp = "https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%BE%8E%E5%89%A7&sort=recommend&page_limit=20&page_start={}"
self.headers = {
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"}
def parse_url(self, url): # 发送请求,获取响应
response = requests.get(url, headers=self.headers)
return response.content.decode()
def get_content_list(self, json_str): # 提取数据
dict_ret = json.loads(json_str)
content_list = dict_ret["subjects"]
return content_list
def save_content_list(self, content_list): # 保存
with open("douban.txt", "a", encoding="utf-8") as f:
for content in content_list:
f.write(json.dumps(content))
f.write("\n")
def run(self): # 实现主要逻辑
while True:
num = 0
# 1.start_url
start_url = self.start_url_temp.format(num)
# 2.发送请求,获取响应
json_str = self.parse_url(start_url)
# 3.提取数据
content_list = self.get_content_list(json_str)
# 4.保存
self.save_content_list(content_list)
if len(content_list) < 20:
break
# 5.构造下一页url地址,进入循环
num += 20
spider = DoubanSpider()
spider.run()
neihanduanzi:
```python
import requests
import re
import json
class Neihan:
def __init__(self):
# self.url = "http://www.haoduanzi.com/wen/"
self.url="http://www.haoduanzi.com/category/?1-{}.html"
self.headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36"}
def parse_url(self,url): # 解析数据,获取响应
response = requests.get(url, headers=self.headers)
return response.content.decode()
def get_first_page_content_list(self, html_str): # 提取第一页的数据
# content_list = re.findall(r"target=\"_blank\"><P>(.*?)</P>", html_str,re.S)
content_list=re.findall(r"<P>[0-9](.*?)</P>",html_str,re.S)
return content_list
def save_content_list(self, content_list):
with open("neihan.txt", "a")as f:
for content in content_list:
f.write(json.dumps(content, ensure_ascii=False))
f.write("\n")
f.write("/n")
print("保存成功!")
def run(self):
for i in range(53):
# 1.start_url
url=self.url.format(i+1)
# 2.发送请求,获取响应
html_str = self.parse_url(url)
# 3.提取数据
content_list=self.get_first_page_content_list(html_str)
# 4.保存
self.save_content_list(content_list)
# 5.循环
if __name__=='__main__':
neihan=Neihan()
neihan.run()